Coverage Report

Created: 2026-02-05 09:02

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
D:\a\scloud-dns\scloud-dns\src\utils\time.rs
Line
Count
Source
1
use std::time::{SystemTime, UNIX_EPOCH};
2
3
0
pub(crate) fn now_epoch_ms() -> u128 {
4
0
    SystemTime::now()
5
0
        .duration_since(UNIX_EPOCH)
6
0
        .map(|d| d.as_millis())
7
0
        .unwrap_or(0)
8
0
}
9
10
0
pub(crate) fn civil_from_days(days: i64) -> (i32, u32, u32) {
11
0
    let z = days + 719_468;
12
0
    let era = z / 146_097;
13
0
    let doe = z - era * 146_097;
14
0
    let yoe = (doe - doe / 1460 + doe / 36524 - doe / 146096) / 365;
15
0
    let y = yoe + era * 400;
16
0
    let doy = doe - (365 * yoe + yoe / 4 - yoe / 100);
17
0
    let mp = (5 * doy + 2) / 153;
18
0
    let d = doy - (153 * mp + 2) / 5 + 1;
19
0
    let m = mp + if mp < 10 { 3 } else { -9 };
20
21
    (
22
0
        (y + if m <= 2 { 1 } else { 0 }) as i32,
23
0
        m as u32,
24
0
        d as u32,
25
    )
26
0
}
27
28
0
pub(crate) fn format_unix_timestamp(secs: u64) -> String {
29
    const SECS_PER_DAY: u64 = 86_400;
30
31
0
    let days = secs / SECS_PER_DAY;
32
0
    let mut rem = secs % SECS_PER_DAY;
33
34
0
    let hour = rem / 3600;
35
0
    rem %= 3600;
36
0
    let min = rem / 60;
37
0
    let sec = rem % 60;
38
39
0
    let (year, month, day) = civil_from_days(days as i64);
40
41
0
    format!(
42
        "{:02}/{:02}/{:04}-{:02}:{:02}:{:02}",
43
        month, day, year, hour, min, sec
44
    )
45
0
}
46
47
0
pub(crate) fn format_system_time(t: SystemTime) -> String {
48
0
    let secs = t
49
0
        .duration_since(UNIX_EPOCH)
50
0
        .unwrap_or_default()
51
0
        .as_secs();
52
53
0
    format_unix_timestamp(secs)
54
0
}